package com.sgb.kjwl.model.api;

import com.sgb.kjwl.model.entity.AddShoppingCar;
import com.sgb.link.entity.AreaEntity;
import com.sgb.kjwl.model.entity.BannerEntity;
import com.sgb.kjwl.model.entity.BidDetailEntity;
import com.sgb.kjwl.model.entity.BidInvitationListEntity;
import com.sgb.kjwl.model.entity.BuildEntity;
import com.sgb.kjwl.model.entity.CompanyBuyEntity;
import com.sgb.kjwl.model.entity.CompanyBuyHeader;
import com.sgb.kjwl.model.entity.DeleteShoppingCar;
import com.sgb.kjwl.model.entity.DeviceAttrEntity;
import com.sgb.kjwl.model.entity.DeviceDetailEntity;
import com.sgb.kjwl.model.entity.DeviceEntity;
import com.sgb.kjwl.model.entity.DeviceOutEntity;
import com.sgb.jicai.entity.FilterEntity;
import com.sgb.kjwl.model.entity.InformationEntity;
import com.sgb.kjwl.model.entity.LeaseEntity;
import com.sgb.kjwl.model.entity.LoginEntity;
import com.sgb.kjwl.model.entity.MachineDetailEntity;
import com.sgb.kjwl.model.entity.MachineInEntity;
import com.sgb.kjwl.model.entity.MachineOutEntity;
import com.sgb.kjwl.model.entity.MachineRentInEntity;
import com.sgb.kjwl.model.entity.MaterialCompanyEntity;
import com.sgb.kjwl.model.entity.MaterialDetailEntity;
import com.sgb.kjwl.model.entity.MaterialListEntity;
import com.sgb.kjwl.model.entity.MaterialMenuEntity;
import com.swgk.core.view.entity.MenuEntity;
import com.sgb.kjwl.model.entity.NewsEntity;
import com.sgb.kjwl.model.entity.PackersBusinessScopeEntity;
import com.sgb.kjwl.model.entity.PackersEntity;
import com.sgb.kjwl.model.entity.PackersPersonDetailEntity;
import com.sgb.kjwl.model.entity.PackersPersonEntity;
import com.sgb.kjwl.model.entity.PackersSkillsEntity;
import com.sgb.kjwl.model.entity.PackersTeamEntity;
import com.sgb.kjwl.model.entity.ParentAreaEntity;
import com.sgb.kjwl.model.entity.PickDeviceEntity;
import com.sgb.kjwl.model.entity.PickDeviceEntity2;
import com.sgb.kjwl.model.entity.PickLabourEntity;
import com.sgb.kjwl.model.entity.PickPackersEntity;
import com.sgb.kjwl.model.entity.PickProInfoEntity;
import com.swgk.core.util.PickSelectEntity;
import com.sgb.kjwl.model.entity.PickTypeEntity;
import com.sgb.kjwl.model.entity.ProChildListEntity;
import com.sgb.kjwl.model.entity.ProListEntity;
import com.sgb.kjwl.model.entity.ProvinceEntity;
import com.sgb.link.entity.PublicTypeEntity;
import com.sgb.kjwl.model.entity.RecommendEntity;
import com.sgb.kjwl.model.entity.RentingEntity;
import com.sgb.kjwl.model.entity.STFilterEntity;
import com.sgb.kjwl.model.entity.ScaleEntity;
import com.sgb.kjwl.model.entity.SearchDeviceOutEntity;
import com.sgb.kjwl.model.entity.SearchMachineInEntity;
import com.sgb.kjwl.model.entity.SearchMachineOutEntity;
import com.sgb.kjwl.model.entity.SearchMailEntity;
import com.sgb.kjwl.model.entity.SearchMaterialEntity;
import com.sgb.kjwl.model.entity.SearchMaterialEntity3;
import com.sgb.kjwl.model.entity.ShopImEntity;
import com.sgb.kjwl.model.entity.ShoppingCarEntity;
import com.sgb.kjwl.model.entity.SupplierEntity;
import com.sgb.kjwl.model.entity.TalentEntity;
import com.sgb.kjwl.model.entity.TenderInfoEntity;
import com.sgb.kjwl.model.entity.UserMsgEntity;
import com.sgb.kjwl.model.entity.lease.CarListEntity3;
import com.sgb.kjwl.model.entity.lease.DeviceListEntity3;
import com.sgb.kjwl.model.entity.lease.MachineListEntity3;
import com.sgb.kjwl.model.entity.pick.TenderDetailEntity3;
import com.sgb.kjwl.model.entity.pick.TenderDictEntity3;
import com.sgb.kjwl.model.entity.pick.TenderInfoBasicEntity3;
import com.sgb.kjwl.model.entity.request.LeaseMachineFilterJson;
import com.sgb.kjwl.model.entity.request.MachineFilterJson3;
import com.sgb.kjwl.model.entity.request.MaterialFilterJson;
import com.sgb.kjwl.model.entity.request.MaterialFilterJson3;
import com.sgb.kjwl.model.entity.self.GoodsListEntity3;
import com.sgb.kjwl.model.entity.self.SelfPickListEntity3;
import com.sgb.kjwl.model.entity.supplier3.DictEntity3;
import com.sgb.kjwl.model.entity.supplier3.SupplierRecommendEntity;
import com.sgb.kjwl.model.entity.user.AddDeviceEntity;
import com.sgb.kjwl.model.entity.user.AddGoodsEntity;
import com.sgb.kjwl.model.entity.user.AddMachineInEntity;
import com.sgb.kjwl.model.entity.user.AddMachineOutEntity;
import com.sgb.kjwl.model.entity.user.AddPackersEntity;
import com.sgb.kjwl.model.entity.user.AddTalentEntity;
import com.sgb.kjwl.model.entity.user.AddressEntity;
import com.sgb.kjwl.model.entity.user.AuthEntity;
import com.sgb.kjwl.model.entity.user.CategoryEntity;
import com.sgb.kjwl.model.entity.user.DeviceStateEntity;
import com.sgb.kjwl.model.entity.user.DictEntity;
import com.sgb.kjwl.model.entity.user.GoodsEntity;
import com.sgb.kjwl.model.entity.user.MachineStateEntity;
import com.sgb.kjwl.model.entity.user.MachineryCompanyEntity;
import com.sgb.kjwl.model.entity.user.NewCategeryEntity;
import com.sgb.kjwl.model.entity.user.PackersStateEntity;
import com.sgb.kjwl.model.entity.user.PhotoEntity;
import com.sgb.kjwl.model.entity.user.SupplierAuthEntity;
import com.sgb.kjwl.model.entity.user.TalentTypeEntity;
import com.sgb.kjwl.model.entity.user.UnitEntity;
import com.sgb.kjwl.model.entity.user.UserAddressEntity;
import com.sgb.kjwl.model.response.CommonResponse;
import com.swgk.core.base.model.entity.ListResponse;
import com.swgk.core.base.api.BaseApiSource;
import com.swgk.core.base.model.entity.BaseEntity;

import java.util.List;
import java.util.Map;

import io.reactivex.Observable;
import okhttp3.RequestBody;
import retrofit2.http.Body;
import retrofit2.http.Path;

/**
 * Description:
 * Author zhengkewen
 * Time 2019/4/2
 */
public interface ApiSource extends BaseApiSource {

    Observable<BaseEntity<List<BannerEntity>>> getMaterialBanner();

    Observable<BaseEntity<List<MenuEntity>>> getMenu();

    Observable<BaseEntity<List<MaterialMenuEntity>>> getMaterialMenu();

    Observable<ListResponse<List<MaterialListEntity>>> getMaterialList(String cid, String areacode);

    Observable<BaseEntity<List<CommonResponse<SupplierEntity>>>> getSupplierList(String areacode);

    Observable<BaseEntity<List<CommonResponse<InformationEntity>>>> getInformation(String areacode);

    Observable<List<String>> getMaterialHotSearch();

    Observable<ListResponse<List<SearchMaterialEntity>>> getMaterialSearch(String areacode, String item_provinceId, String key, int page, int size);

    Observable<ListResponse<List<SearchMaterialEntity>>> getMaterialFilterList(int page, int size, int sort, Map map);

    Observable<BaseEntity<MaterialDetailEntity>> getMaterialDetail(String pid, String areacode);

    Observable<BaseEntity<MaterialCompanyEntity>> getMaterialCompany(String cid, String areacode);

    Observable<BaseEntity<List<BannerEntity>>> getMachineBanner();

    Observable<BaseEntity<List<MenuEntity>>> getMachineMenu();

    Observable<BaseEntity<List<LeaseEntity>>> getMachineLease(String areacode);

    Observable<BaseEntity<List<RentingEntity>>> getMachineRenting(String areacode);

    Observable<BaseEntity<NewsEntity>> getNewsDetail(@Path("id") String id);

    //工程机械 区域选择
    Observable<BaseEntity<List<ParentAreaEntity<List<ParentAreaEntity>>>>> getMachineArea(int areacode);

    Observable<BaseEntity<ListResponse<List<MachineOutEntity>>>> getMachineOut(int page, int size, int priceSort, Map map);

    Observable<BaseEntity<List<PublicTypeEntity>>> getMachineType();

    Observable<BaseEntity<List<FilterEntity<List<FilterEntity>>>>> getMachineFilter();

    Observable<BaseEntity<List<FilterEntity<List<FilterEntity>>>>> getMachineFilterInfo(String categoryNo, String typeNo, int areacode);

    Observable<BaseEntity<ListResponse<List<MachineInEntity>>>> getMachineIn(int page, int limit, int priceSort, Map map);

    Observable<BaseEntity<MachineRentInEntity>> getMachineInDetail(String id);

    Observable<List<String>> getMachineHotSearch();

    Observable<BaseEntity<ListResponse<List<SearchMachineOutEntity>>>> getMachineSearch(int page, int size, String areacode, String key);

    Observable<BaseEntity<ListResponse<List<SearchMachineInEntity>>>> getMachineInSearch(int page, int size, String areacode, String key);

    Observable<BaseEntity<List<BannerEntity>>> getDeviceBanner();

    Observable<BaseEntity<List<MenuEntity>>> getDeviceMenu();

    Observable<BaseEntity<List<DeviceEntity>>> getDeviceRecommand(String areacode);

    Observable<ListResponse<List<DeviceOutEntity>>> getDeviceOut(Map map, int page, int limit, int priceSort);

    Observable<BaseEntity<MachineDetailEntity>> getMachineDetail(String id);

    //工程设备 所在地区
    Observable<BaseEntity<List<ParentAreaEntity<List<ParentAreaEntity>>>>> getDeviceArea(int areaId);

    Observable<DeviceDetailEntity> getDeviceDetail(String id);

    Observable<BaseEntity<ListResponse<List<DeviceAttrEntity>>>> getDeviceAttr(String id);

    //获取省、自治区、直辖市列表
    Observable<BaseEntity<List<ProvinceEntity<List<ProvinceEntity>>>>> getAllProvince();

    Observable<BaseEntity<List<FilterEntity<List<FilterEntity>>>>> getDeviceFilter();

    Observable<BaseEntity<List<FilterEntity<List<FilterEntity>>>>> getDeviceFilterByNumber(String pNo, String cNo);

    Observable<List<String>> getDeviceHotSearch();

    Observable<ListResponse<List<SearchDeviceOutEntity>>> getDeviceOutSearch(int page, int size, String areacode, String key);

    Observable<BaseEntity<List<BannerEntity>>> getPackersBanner();

    Observable<BaseEntity<List<MenuEntity>>> getPackersMenu();

    Observable<BaseEntity<List<BuildEntity>>> getPackersBuild(String areacode);

    Observable<BaseEntity<List<TalentEntity>>> getPackersTalent(String areacode);

    Observable<BaseEntity<ListResponse<List<PackersPersonEntity>>>> getPackersPerson(int page, int limit, Map map);

    Observable<BaseEntity<ListResponse<List<PackersTeamEntity>>>> getPackersTeam(int page, int limit, Map map);

    Observable<BaseEntity<PickProInfoEntity<ProListEntity<List<ProChildListEntity>>>>> companyProject(String compNo);

    Observable<BaseEntity<ListResponse<List<CompanyBuyHeader<CompanyBuyEntity>>>>> getCompanyBuy(Map map, int page, int size);

    //工程工队工队详情
    Observable<BaseEntity<PackersEntity>> getPackersEntity(String id);

    //工程工队人才详情
    Observable<BaseEntity<PackersPersonDetailEntity>> getPackersPersonDetailEntity(String id);

    //工程工队人才技能与证件详情
    Observable<BaseEntity<PackersSkillsEntity>> getPackersSkillsEntity(String id);

    //工程工队技能范围详情
    Observable<BaseEntity<PackersBusinessScopeEntity>> getPackersBusinessScopeEntity(String id);

    //购物车详情
    Observable<BaseEntity<List<ShoppingCarEntity>>> getShoppingCarEntity(String areacode);

    //加入购物车
    Observable<BaseEntity> addShoppingCar(AddShoppingCar addShoppingCar);

    //获取购物车数量
    Observable<BaseEntity<String>> getCarCount(String areacode);

    //更新购物车
    Observable<BaseEntity<Boolean>> updateShoppingCar(Map map);

    //删除购物车
    Observable<BaseEntity> deleteShoppingCar(DeleteShoppingCar deleteShoppingCar);

    Observable<BaseEntity<ListResponse<List<AreaEntity>>>> getAreaList();

    Observable<BaseEntity<List<ScaleEntity>>> getScaleList(String type);

    Observable<BaseEntity<List<PickTypeEntity>>> getTypeList();

    Observable<BaseEntity<ListResponse<List<PickDeviceEntity>>>> getPickBid(String no, String projectNo, int size, int num);

    Observable<BaseEntity> register(String account, String pwd, String code);

    Observable<BaseEntity> getRegisterCode(String phone);

    Observable<BaseEntity> getForgetCode(String phone);

    Observable<BaseEntity> forgetPwd(String account, String pwd, String code);

    Observable<LoginEntity> login(String account, String pwd, String code);

    Observable<BaseEntity> loginOut(String accesstoken);

    Observable<BaseEntity> checkToken(Map map);

    Observable<BaseEntity<UserMsgEntity>> getCurrentUserInfo();

    Observable<BaseEntity<List<MenuEntity<MenuEntity<MenuEntity>>>>> getCategoryMenu(String areaCode);

    Observable<BaseEntity<List<NewCategeryEntity<List<NewCategeryEntity<List<NewCategeryEntity>>>>>>> getNewCategoryMenu();

    Observable<BaseEntity<SupplierAuthEntity>> getSupplierAuthInfo();

    Observable<BaseEntity> addSupplierAuth(SupplierAuthEntity supplierAuthEntity);

    Observable<BaseEntity<PhotoEntity>> uploadPhoto(Map<String, RequestBody> photos);

    Observable<BaseEntity> uploadFile(Map<String, RequestBody> files);

    Observable<BaseEntity<List<String>>> uploadMutiFile(Map<String, RequestBody> files);

    Observable<List<String>> getCompanyType();

    Observable<BaseEntity<List<DictEntity>>> getBusiness();

    Observable<BaseEntity<List<AddressEntity<List<AddressEntity<List<AddressEntity>>>>>>> getAddress();

    Observable<BaseEntity<TenderInfoEntity>> getHotTenderInfo(String no);

    Observable<BaseEntity<List<AddressEntity<List<AddressEntity>>>>> getCommonAddress();

    //工程工队发布
    Observable<BaseEntity<ListResponse<List<PackersStateEntity>>>> getPublishPackers(String state, int page, int size);

    Observable<BaseEntity> onPacker(String id);

    Observable<BaseEntity> offPacker(String id);

    Observable<BaseEntity> delPackersList(String id);

    Observable<BaseEntity<List<CategoryEntity<CategoryEntity>>>> getPackersCategory();

    Observable<BaseEntity> addPackers(AddPackersEntity entity);

    Observable<BaseEntity> editPackers(AddPackersEntity entity);

    Observable<BaseEntity<AddPackersEntity>> getPackersDetail(String id);

    Observable<BaseEntity<List<AddressEntity<List<AddressEntity>>>>> getPackersAddress();

    //人才发布
    Observable<BaseEntity> addTalent(AddTalentEntity entity);

    Observable<BaseEntity> editTalent(AddTalentEntity entity);

    Observable<BaseEntity<AddTalentEntity>> getTalentDetail();

    Observable<BaseEntity<List<TalentTypeEntity<List<TalentTypeEntity>>>>> getTalentType();

    //设备发布
    Observable<BaseEntity<ListResponse<List<DeviceStateEntity>>>> getPublishDevice(String state, int page, int size,String text);

    Observable<BaseEntity> addDevice(AddDeviceEntity entity);

    Observable<BaseEntity> updateDevice(AddDeviceEntity entity);

    Observable<BaseEntity> addGoods(AddGoodsEntity entity);

    Observable<BaseEntity> deviceOnlineOrOff(Map map);

    Observable<BaseEntity> delDeviceList(Map map);

    Observable<BaseEntity<List<UnitEntity>>> getDeviceUnit();

    Observable<BaseEntity<List<PublicTypeEntity<List<PublicTypeEntity>>>>> getDeviceType(String no);

    Observable<BaseEntity<AddDeviceEntity>> getPublishDeviceDetail(String id);

    Observable<BaseEntity<List<AddressEntity>>> getDeviceAddress(String parentNo);

    Observable<BaseEntity<List<FilterEntity<List<FilterEntity>>>>> getPulishDeviceAttr(String firstCategory, String secCategory);

    //机械发布
    Observable<BaseEntity> addMachineOut(AddMachineOutEntity entity);

    //Observable<BaseEntity> editMachineOut(AddMachineOutEntity entity);

    Observable<BaseEntity<ListResponse<List<MachineStateEntity>>>> getPublishMachineOut(int page, int size, String status, String text);

    Observable<BaseEntity<AddMachineOutEntity>> getPublishMachineOutDetail(String id, String categoryType);

    Observable<BaseEntity> machineOutOnlineOrOff(String id, String status);

    Observable<BaseEntity> delMachineOutList(String id);

    //获取用户认证信息
    Observable<BaseEntity<AuthEntity<List<MachineryCompanyEntity>>>> getAuthInfo();

    Observable<BaseEntity<List<PublicTypeEntity<List<PublicTypeEntity>>>>> getMachineOutType();

    Observable<BaseEntity<List<FilterEntity<List<FilterEntity>>>>> getMachineDict(String firstCategory, String secondCategory);

    Observable<BaseEntity<List<DictEntity>>> getMachinePrice();

    Observable<BaseEntity> addMachineIn(AddMachineInEntity entity);

    Observable<BaseEntity> editMachineIn(AddMachineInEntity entity);

    Observable<BaseEntity<ListResponse<List<MachineStateEntity>>>> getPublishMachineIn(int page, int size, String status);

    Observable<BaseEntity> machineInOnlineOrOff(String id, String status);

    Observable<BaseEntity> delMachineInList(String id);

    Observable<BaseEntity> changeMobile(Map map);

    Observable<BaseEntity> changePwd(Map map);

    Observable<BaseEntity> commitBankInfo(Map map);

    Observable<BaseEntity<AddMachineInEntity>> getPublishMachineInDetail(String id);

    //收货地址相关
    Observable<BaseEntity<ListResponse<List<UserAddressEntity>>>> getUserAddressList();

    Observable<BaseEntity> delAddress(String id);

    Observable<BaseEntity<UserAddressEntity>> searchAddress(String id);

    Observable<BaseEntity> editAddress(UserAddressEntity data);

    Observable<BaseEntity> addAddress(UserAddressEntity data);

    Observable<BaseEntity<GoodsEntity>> getGoodsList(String status);

    Observable<BaseEntity> downGoods(String id);

    Observable<BaseEntity> upGoods(String id);

    Observable<BaseEntity> deleteGoods(String id);

    /**
     * 首页板块接口开始 zkw
     **/
    //首页改版
    Observable<BaseEntity<List<BannerEntity>>> getHomeBanner();

    //首页菜单类型
    Observable<BaseEntity<List<MenuEntity>>> getHomeMenu();

    //首页推荐类别分类
    Observable<BaseEntity<List<MaterialMenuEntity>>> getHomeRecommendType(String areacode);

    //获取首页材料推荐列表
    Observable<BaseEntity<List<RecommendEntity>>> getHomeRecommandList(String areacode, String type);

    Observable<BaseEntity<ListResponse<List<SupplierRecommendEntity>>>> getSupplierMapData(Map map);

    Observable<BaseEntity<ListResponse<List<SupplierRecommendEntity>>>> getGoodsMapData(Map map);

    Observable<BaseEntity<List<DictEntity3>>> getSupplierCityData(String areacode);

    Observable<BaseEntity<List<DictEntity3>>> getSupplierDistanceData();

    Observable<BaseEntity<List<DictEntity3>>> getDistance();

    Observable<BaseEntity<List<DictEntity3>>> getSupplierSortData();

    Observable<BaseEntity<ListResponse<List<SupplierRecommendEntity>>>> getSupplierList(Map map);

    Observable<BaseEntity<ListResponse<List<SupplierRecommendEntity>>>> getGoodsList(Map map);

    Observable<BaseEntity<List<MenuEntity<MenuEntity<MenuEntity>>>>> getCategoryData(String areaCode);
    /**  首页板块接口结束 **/

    /*** 招采机械设备接口开始 zkw ***/

    Observable<BaseEntity<ListResponse<List<PickDeviceEntity2>>>> getPickDeviceList(int page, int size, String areacode, List<String> cityList);

    Observable<BaseEntity<ListResponse<List<PickLabourEntity>>>> getPickLaborList(int page, int size, String areacode, List<String> cityList);

    Observable<BaseEntity<ListResponse<List<PickPackersEntity>>>> getPickPackersList(int page, int size, String areacode, List<String> cityList, List<String> typeList, String type);

    Observable<BaseEntity<List<PickSelectEntity>>> getPickPackersType();

    //招采招标详情
    Observable<BaseEntity<TenderDetailEntity3<TenderInfoBasicEntity3<TenderDictEntity3>>>> getPickBidDetail(String id);

    //招采需求查询分类
    Observable<BaseEntity<List<DictEntity3>>> getPickRequireType();

    //招采需求查询工程类型
    Observable<BaseEntity<List<DictEntity3>>> getPickEngineeringType();

    //招采需求查询项目规模
    Observable<BaseEntity<List<DictEntity3>>> getPickScale(String type);

    //招采需求查询材料类型
    Observable<BaseEntity<List<DictEntity3>>> getPickMaterialType();

    /*** 招采机械设备接口结束 zkw ***/

    /*** 通用接口开始 zkw ***/

    Observable<BaseEntity<ShopImEntity>> getShopImInfo(String shopId);

    Observable<BaseEntity<List<SearchMailEntity>>> searchMailList(String condition);

    Observable<BaseEntity<List<ParentAreaEntity<List<ParentAreaEntity>>>>> getAreaSecondAndThird(String areacode);

    Observable<BaseEntity<List<DictEntity3>>> getAreaSecond(String areaCode);

    Observable<BaseEntity<List<DictEntity3>>> getAreaSecond2(String areaCode);

    /*** 通用接口结束 zkw ***/

    /*** 个人中心接口开始 zkw ***/

    //投标报价-投标邀请
    Observable<BaseEntity<ListResponse<List<BidInvitationListEntity>>>> getBidInvitationList(int page, int size);

    //投标报价-投标详情
    Observable<BaseEntity<BidDetailEntity>> getBidDetail(String id);

    //商品报价-商品列表-3
    Observable<BaseEntity<ListResponse<List<GoodsListEntity3>>>> getGoodsList(int page, int size, String condition, String status, List<String> cid3,String companyId,String flag);

    //商品报价-全部条件字典-3
    Observable<BaseEntity<List<DictEntity3>>> getGoodsAllDict();

    //商品报价-批量上下架-3
    Observable<BaseEntity> upDowngetGoods(String opt, List<String> goodsIds);

    //商品报价-批量改价-3
    Observable<BaseEntity> modifyGoodsPrice(String price, String type, List<String> goodsIds);

    //商品详情-改价-3
    Observable<BaseEntity> modifyGoodsDetailPrice(String id, String price);

    //集采管理-我的集采
    Observable<BaseEntity<ListResponse<List<SelfPickListEntity3>>>> getCollectList(int page, int size, String status, String type,String groupBuyClass,String goodsName);

    //集采管理-我的集采列表删除
    Observable<BaseEntity> deleteCollectList(String no);

    Observable<BaseEntity> deleteCollectList2(String no);

    /*** 个人中心接口结束 zkw ***/

    /*** 租赁接口开始 zkw ***/

    //获取机械分类
    Observable<BaseEntity<List<DictEntity3>>> getMachineFilterType();

    //获取机械类型
    Observable<BaseEntity<List<DictEntity3>>> getMachineFilterModel(String parentNo);

    //获取机械机龄
    Observable<BaseEntity<List<DictEntity3>>> getMachineFilterTime();

    //获取机械排序方式
    Observable<BaseEntity<List<DictEntity3>>> getMachineFilterSort();

    //获取机械列表
    Observable<BaseEntity<ListResponse<List<MachineListEntity3>>>> getMachineList3(LeaseMachineFilterJson machineFilterJson3);

    //获取机械筛选属性
    Observable<BaseEntity<List<DictEntity3>>> getMachineFilterSpec(String id);

    //获取设备分类
    Observable<BaseEntity<List<DictEntity3>>> getDeviceFilterType();

    //获取设备类型
    Observable<BaseEntity<List<DictEntity3>>> getDeviceFilterModel(String parentNo);

    //获取设备筛选属性
    Observable<BaseEntity<List<DictEntity3>>> getDeviceFilterSpec(String id);

    //获取机械列表
    Observable<BaseEntity<ListResponse<List<DeviceListEntity3>>>> getDeviceList3(MachineFilterJson3 machineFilterJson3);

    //获取车辆分类
    Observable<BaseEntity<List<DictEntity3>>> getCarFilterType();

    //获取车辆品牌
    Observable<BaseEntity<List<DictEntity3>>> getCarFilterBrand();

    //获取车辆日租金
    Observable<BaseEntity<List<DictEntity3>>> getCarFilterMoney();

    //获取车辆列表
    Observable<BaseEntity<ListResponse<List<CarListEntity3>>>> getCarList3(@Body MachineFilterJson3 machineFilterJson3);

    /*** 租赁接口结束 zkw ***/

    /*** 工程材料接口开始 zkw ***/

    //获取工程材料筛选类别
    Observable<BaseEntity<List<DictEntity3>>> getMaterialFilterType(String id, String areacode);

    //获取工程材料筛选品名
    Observable<BaseEntity<List<DictEntity3>>> getMaterialFilterName(String id, String areacode);

    //获取工程材料筛选仓储
    Observable<BaseEntity<List<DictEntity3>>> getMaterialFilterStore(String areacode);

    //获取工程材料筛选品牌
    Observable<BaseEntity<List<DictEntity3>>> getMaterialFilterBrand(String id, String areacode);

    //获取工程材料筛选材质规格
    Observable<BaseEntity<List<DictEntity3>>> getMaterialFilterSpec(String id, String areacode);

    //获取工程材料距离选择条件数据
    Observable<BaseEntity<List<DictEntity3>>> getMaterialDistanceData();

    //获取工程材料价格选择条件数据
    Observable<BaseEntity<List<DictEntity3>>> getMaterialPriceData();

    //获取工程材料列表
    Observable<BaseEntity<ListResponse<List<SearchMaterialEntity>>>> getMaterialList(MaterialFilterJson materialFilterJson);

    Observable<BaseEntity<List<MenuEntity<MenuEntity>>>> getsecondCategory(String id, String areaCode);

//    //商砼列表
//    Observable<BaseEntity<ListResponse<List<SearchSTEntity>>>> getSTList(MaterialFilterJson materialFilterJson);

//    Observable<BaseEntity<ListResponse<List<SearchSTEntity>>>> getHomeSTList(MaterialFilterJson materialFilterJson);

    //商砼筛选
    Observable<BaseEntity<STFilterEntity>> getSTFilter(String areaCode);

    //获取工程材料列表（先叫商品列表）
    Observable<BaseEntity<ListResponse<List<SearchMaterialEntity3>>>> getMaterialList3(MaterialFilterJson3 materialFilterJson);

}
